package gov.goias.recad.dominio;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "PESSOAS_FISICAS_COMPLEMENTO")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name = "PFIC_PFIS_IDEN") 
public class PessoaFisicaCompleta extends PessoaFisica{
	private static final long serialVersionUID = 1L;

	@Column(name = "PFIC_NUMR_TIT_ELEITOR")
	private String tituloNumero;
	
	@Column(name =  "PFIC_INFO_ZONA_TIT_ELEITOR")
	private String tituloZona;
	
	@Column(name =  "PFIC_INFO_SECAO_TIT_ELEITOR")
	private String tituloSecao;
	
	@Temporal(TemporalType.DATE)
	@Column(name =  "PFIC_DATA_EXPED_TIT_ELEITOR")	
	private Date tituloDataExpedicao;
	
	@ManyToOne
	@JoinColumn(name = "PFIC_MUNI_CODG_TIT_ELEITOR")
	private Municipio tituloMunicipio;
	
	@Column(name = "PFIC_NUMR_CART_MOTORISTA")
	private Integer cnhNumero;
	
	@Enumerated(EnumType.STRING)
	@Column(name = "PFIC_TIPO_CATEG_CART_MOTORISTA", columnDefinition = "char(3)")
	private CnhCategoria cnhCategoria;
	
	@ManyToOne
	@JoinColumn(name = "PFIC_UFED_SIGL_CART_MOTORISTA")
	private Uf cnhUf;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "PFIC_DATA_EXPED_CART_MOTORISTA")
	private Date cnhDataExpedicao;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "PFIC_DATA_VALID_CART_MOTORISTA")
	private Date cnhDataValidade;
	
	@Column(name = "PFIC_INFO_CARTORIO_CERT_CASAM")
	private String casamentoCartorio;
	
	@ManyToOne
	@JoinColumn(name = "PFIC_PAIS_CODG_CASAM")
	private Pais casamentoPais;
	
	@ManyToOne
	@JoinColumn(name = "PFIC_MUNI_CODG_CASAM")
	private Municipio casamentoMunicipio;
	
	@Column(name = "PFIC_DESC_ENDR_EXTE_CERT_CASAM")
	private String casamentoLocalEquivalente;
	
	@Column(name = "PFIC_NUMR_MATRICULA_CERT_CASAM")
	private Integer casamentoMatricula;
	
	@Column(name = "PFIC_NUMR_CERT_CASAM")
	private String casamentoNumeroCertidao;
	
	@Column(name = "PFIC_INFO_LIVRO_CERT_CASAM")
	private String casamentoNumeroLivro;
	
	@Column(name = "PFIC_INFO_FOLHA_CERT_CASAM")
	private String casamentoNumeroFolha;
		
	@Temporal(TemporalType.DATE)
	@Column(name =  "PFIC_DATA_CASAM")
	private Date casamentoDataEmissao;
	
	public String getTituloNumero() {
		return tituloNumero;
	}
	
	public void setTituloNumero(String tituloNumero) {
		this.tituloNumero = tituloNumero;
	}
	
	public String getTituloZona() {
		return tituloZona;
	}
	
	public void setTituloZona(String tituloZona) {
		this.tituloZona = tituloZona;
	}
	
	public String getTituloSecao() {
		return tituloSecao;
	}
	
	public void setTituloSecao(String tituloSecao) {
		this.tituloSecao = tituloSecao;
	}
	
	public Date getTituloDataExpedicao() {
		return tituloDataExpedicao;
	}
	
	public void setTituloDataExpedicao(Date tituloDataExpedicao) {
		this.tituloDataExpedicao = tituloDataExpedicao;
	}
	
	public Municipio getTituloMunicipio() {
		return tituloMunicipio;
	}
	
	public void setTituloMunicipio(Municipio tituloMunicipio) {
		this.tituloMunicipio = tituloMunicipio;
	}
	
	public Integer getCnhNumero() {
		return cnhNumero;
	}
	
	public void setCnhNumero(Integer cnhNumero) {
		this.cnhNumero = cnhNumero;
	}
	
	public CnhCategoria getCnhCategoria() {
		return cnhCategoria;
	}
	
	public void setCnhCategoria(CnhCategoria cnhCategoria) {
		this.cnhCategoria = cnhCategoria;
	}
	
	public Uf getCnhUf() {
		return cnhUf;
	}
	
	public void setCnhUf(Uf cnhUf) {
		this.cnhUf = cnhUf;
	}
	
	public Date getCnhDataExpedicao() {
		return cnhDataExpedicao;
	}
	
	public void setCnhDataExpedicao(Date cnhDataExpedicao) {
		this.cnhDataExpedicao = cnhDataExpedicao;
	}
	
	public Date getCnhDataValidade() {
		return cnhDataValidade;
	}
	
	public void setCnhDataValidade(Date cnhDataValidade) {
		this.cnhDataValidade = cnhDataValidade;
	}
	
	public String getCasamentoCartorio() {
		return casamentoCartorio;
	}
	
	public void setCasamentoCartorio(String casamentoCartorio) {
		this.casamentoCartorio = casamentoCartorio;
	}
	
	public Pais getCasamentoPais() {
		return casamentoPais;
	}
	
	public void setCasamentoPais(Pais casamentoPais) {
		this.casamentoPais = casamentoPais;
	}
	
	public Municipio getCasamentoMunicipio() {
		return casamentoMunicipio;
	}
	
	public void setCasamentoMunicipio(Municipio casamentoMunicipio) {
		this.casamentoMunicipio = casamentoMunicipio;
	}
	
	public String getCasamentoLocalEquivalente() {
		return casamentoLocalEquivalente;
	}

	public void setCasamentoLocalEquivalente(String casamentoLocalEquivalente) {
		this.casamentoLocalEquivalente = casamentoLocalEquivalente;
	}
	
	public Integer getCasamentoMatricula() {
		return casamentoMatricula;
	}
	
	public void setCasamentoMatricula(Integer casamentoMatricula) {
		this.casamentoMatricula = casamentoMatricula;
	}
	
	public String getCasamentoNumeroCertidao() {
		return casamentoNumeroCertidao;
	}
	
	public void setCasamentoNumeroCertidao(String casamentoNumeroCertidao) {
		this.casamentoNumeroCertidao = casamentoNumeroCertidao;
	}
	
	public String getCasamentoNumeroLivro() {
		return casamentoNumeroLivro;
	}
	
	public void setCasamentoNumeroLivro(String casamentoNumeroLivro) {
		this.casamentoNumeroLivro = casamentoNumeroLivro;
	}

	public String getCasamentoNumeroFolha() {
		return casamentoNumeroFolha;
	}
	
	public void setCasamentoNumeroFolha(String casamentoNumeroFolha) {
		this.casamentoNumeroFolha = casamentoNumeroFolha;
	}

	public Date getCasamentoDataEmissao() {
		return casamentoDataEmissao;
	}
	
	public void setCasamentoDataEmissao(Date casamentoDataEmissao) {
		this.casamentoDataEmissao = casamentoDataEmissao;
	}
	
}